package com.supplychainapi.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ScmTbtreebuildExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ScmTbtreebuildExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andFsNodeCodeIsNull() {
            addCriterion("fsNodeCode is null");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeIsNotNull() {
            addCriterion("fsNodeCode is not null");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeEqualTo(String value) {
            addCriterion("fsNodeCode =", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeNotEqualTo(String value) {
            addCriterion("fsNodeCode <>", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeGreaterThan(String value) {
            addCriterion("fsNodeCode >", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeGreaterThanOrEqualTo(String value) {
            addCriterion("fsNodeCode >=", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeLessThan(String value) {
            addCriterion("fsNodeCode <", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeLessThanOrEqualTo(String value) {
            addCriterion("fsNodeCode <=", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeLike(String value) {
            addCriterion("fsNodeCode like", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeNotLike(String value) {
            addCriterion("fsNodeCode not like", value, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeIn(List<String> values) {
            addCriterion("fsNodeCode in", values, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeNotIn(List<String> values) {
            addCriterion("fsNodeCode not in", values, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeBetween(String value1, String value2) {
            addCriterion("fsNodeCode between", value1, value2, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsNodeCodeNotBetween(String value1, String value2) {
            addCriterion("fsNodeCode not between", value1, value2, "fsNodeCode");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdIsNull() {
            addCriterion("fsTreeTypeId is null");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdIsNotNull() {
            addCriterion("fsTreeTypeId is not null");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdEqualTo(String value) {
            addCriterion("fsTreeTypeId =", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdNotEqualTo(String value) {
            addCriterion("fsTreeTypeId <>", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdGreaterThan(String value) {
            addCriterion("fsTreeTypeId >", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdGreaterThanOrEqualTo(String value) {
            addCriterion("fsTreeTypeId >=", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdLessThan(String value) {
            addCriterion("fsTreeTypeId <", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdLessThanOrEqualTo(String value) {
            addCriterion("fsTreeTypeId <=", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdLike(String value) {
            addCriterion("fsTreeTypeId like", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdNotLike(String value) {
            addCriterion("fsTreeTypeId not like", value, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdIn(List<String> values) {
            addCriterion("fsTreeTypeId in", values, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdNotIn(List<String> values) {
            addCriterion("fsTreeTypeId not in", values, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdBetween(String value1, String value2) {
            addCriterion("fsTreeTypeId between", value1, value2, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsTreeTypeIdNotBetween(String value1, String value2) {
            addCriterion("fsTreeTypeId not between", value1, value2, "fsTreeTypeId");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDIsNull() {
            addCriterion("fsShopGUID is null");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDIsNotNull() {
            addCriterion("fsShopGUID is not null");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDEqualTo(String value) {
            addCriterion("fsShopGUID =", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDNotEqualTo(String value) {
            addCriterion("fsShopGUID <>", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDGreaterThan(String value) {
            addCriterion("fsShopGUID >", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDGreaterThanOrEqualTo(String value) {
            addCriterion("fsShopGUID >=", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDLessThan(String value) {
            addCriterion("fsShopGUID <", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDLessThanOrEqualTo(String value) {
            addCriterion("fsShopGUID <=", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDLike(String value) {
            addCriterion("fsShopGUID like", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDNotLike(String value) {
            addCriterion("fsShopGUID not like", value, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDIn(List<String> values) {
            addCriterion("fsShopGUID in", values, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDNotIn(List<String> values) {
            addCriterion("fsShopGUID not in", values, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDBetween(String value1, String value2) {
            addCriterion("fsShopGUID between", value1, value2, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsShopGUIDNotBetween(String value1, String value2) {
            addCriterion("fsShopGUID not between", value1, value2, "fsShopGUID");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextIsNull() {
            addCriterion("fsNodeText is null");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextIsNotNull() {
            addCriterion("fsNodeText is not null");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextEqualTo(String value) {
            addCriterion("fsNodeText =", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextNotEqualTo(String value) {
            addCriterion("fsNodeText <>", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextGreaterThan(String value) {
            addCriterion("fsNodeText >", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextGreaterThanOrEqualTo(String value) {
            addCriterion("fsNodeText >=", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextLessThan(String value) {
            addCriterion("fsNodeText <", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextLessThanOrEqualTo(String value) {
            addCriterion("fsNodeText <=", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextLike(String value) {
            addCriterion("fsNodeText like", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextNotLike(String value) {
            addCriterion("fsNodeText not like", value, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextIn(List<String> values) {
            addCriterion("fsNodeText in", values, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextNotIn(List<String> values) {
            addCriterion("fsNodeText not in", values, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextBetween(String value1, String value2) {
            addCriterion("fsNodeText between", value1, value2, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFsNodeTextNotBetween(String value1, String value2) {
            addCriterion("fsNodeText not between", value1, value2, "fsNodeText");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelIsNull() {
            addCriterion("fdNodeLevel is null");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelIsNotNull() {
            addCriterion("fdNodeLevel is not null");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelEqualTo(Short value) {
            addCriterion("fdNodeLevel =", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelNotEqualTo(Short value) {
            addCriterion("fdNodeLevel <>", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelGreaterThan(Short value) {
            addCriterion("fdNodeLevel >", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelGreaterThanOrEqualTo(Short value) {
            addCriterion("fdNodeLevel >=", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelLessThan(Short value) {
            addCriterion("fdNodeLevel <", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelLessThanOrEqualTo(Short value) {
            addCriterion("fdNodeLevel <=", value, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelIn(List<Short> values) {
            addCriterion("fdNodeLevel in", values, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelNotIn(List<Short> values) {
            addCriterion("fdNodeLevel not in", values, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelBetween(Short value1, Short value2) {
            addCriterion("fdNodeLevel between", value1, value2, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFdNodeLevelNotBetween(Short value1, Short value2) {
            addCriterion("fdNodeLevel not between", value1, value2, "fdNodeLevel");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextIsNull() {
            addCriterion("fsNodeFullText is null");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextIsNotNull() {
            addCriterion("fsNodeFullText is not null");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextEqualTo(String value) {
            addCriterion("fsNodeFullText =", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextNotEqualTo(String value) {
            addCriterion("fsNodeFullText <>", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextGreaterThan(String value) {
            addCriterion("fsNodeFullText >", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextGreaterThanOrEqualTo(String value) {
            addCriterion("fsNodeFullText >=", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextLessThan(String value) {
            addCriterion("fsNodeFullText <", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextLessThanOrEqualTo(String value) {
            addCriterion("fsNodeFullText <=", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextLike(String value) {
            addCriterion("fsNodeFullText like", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextNotLike(String value) {
            addCriterion("fsNodeFullText not like", value, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextIn(List<String> values) {
            addCriterion("fsNodeFullText in", values, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextNotIn(List<String> values) {
            addCriterion("fsNodeFullText not in", values, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextBetween(String value1, String value2) {
            addCriterion("fsNodeFullText between", value1, value2, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeFullTextNotBetween(String value1, String value2) {
            addCriterion("fsNodeFullText not between", value1, value2, "fsNodeFullText");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsIsNull() {
            addCriterion("fsNodeCls is null");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsIsNotNull() {
            addCriterion("fsNodeCls is not null");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsEqualTo(String value) {
            addCriterion("fsNodeCls =", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsNotEqualTo(String value) {
            addCriterion("fsNodeCls <>", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsGreaterThan(String value) {
            addCriterion("fsNodeCls >", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsGreaterThanOrEqualTo(String value) {
            addCriterion("fsNodeCls >=", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsLessThan(String value) {
            addCriterion("fsNodeCls <", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsLessThanOrEqualTo(String value) {
            addCriterion("fsNodeCls <=", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsLike(String value) {
            addCriterion("fsNodeCls like", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsNotLike(String value) {
            addCriterion("fsNodeCls not like", value, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsIn(List<String> values) {
            addCriterion("fsNodeCls in", values, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsNotIn(List<String> values) {
            addCriterion("fsNodeCls not in", values, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsBetween(String value1, String value2) {
            addCriterion("fsNodeCls between", value1, value2, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFsNodeClsNotBetween(String value1, String value2) {
            addCriterion("fsNodeCls not between", value1, value2, "fsNodeCls");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeIsNull() {
            addCriterion("fdParentNodeCode is null");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeIsNotNull() {
            addCriterion("fdParentNodeCode is not null");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeEqualTo(String value) {
            addCriterion("fdParentNodeCode =", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeNotEqualTo(String value) {
            addCriterion("fdParentNodeCode <>", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeGreaterThan(String value) {
            addCriterion("fdParentNodeCode >", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeGreaterThanOrEqualTo(String value) {
            addCriterion("fdParentNodeCode >=", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeLessThan(String value) {
            addCriterion("fdParentNodeCode <", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeLessThanOrEqualTo(String value) {
            addCriterion("fdParentNodeCode <=", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeLike(String value) {
            addCriterion("fdParentNodeCode like", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeNotLike(String value) {
            addCriterion("fdParentNodeCode not like", value, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeIn(List<String> values) {
            addCriterion("fdParentNodeCode in", values, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeNotIn(List<String> values) {
            addCriterion("fdParentNodeCode not in", values, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeBetween(String value1, String value2) {
            addCriterion("fdParentNodeCode between", value1, value2, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFdParentNodeCodeNotBetween(String value1, String value2) {
            addCriterion("fdParentNodeCode not between", value1, value2, "fdParentNodeCode");
            return (Criteria) this;
        }

        public Criteria andFiSortIsNull() {
            addCriterion("fiSort is null");
            return (Criteria) this;
        }

        public Criteria andFiSortIsNotNull() {
            addCriterion("fiSort is not null");
            return (Criteria) this;
        }

        public Criteria andFiSortEqualTo(Short value) {
            addCriterion("fiSort =", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortNotEqualTo(Short value) {
            addCriterion("fiSort <>", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortGreaterThan(Short value) {
            addCriterion("fiSort >", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortGreaterThanOrEqualTo(Short value) {
            addCriterion("fiSort >=", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortLessThan(Short value) {
            addCriterion("fiSort <", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortLessThanOrEqualTo(Short value) {
            addCriterion("fiSort <=", value, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortIn(List<Short> values) {
            addCriterion("fiSort in", values, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortNotIn(List<Short> values) {
            addCriterion("fiSort not in", values, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortBetween(Short value1, Short value2) {
            addCriterion("fiSort between", value1, value2, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiSortNotBetween(Short value1, Short value2) {
            addCriterion("fiSort not between", value1, value2, "fiSort");
            return (Criteria) this;
        }

        public Criteria andFiStatusIsNull() {
            addCriterion("fiStatus is null");
            return (Criteria) this;
        }

        public Criteria andFiStatusIsNotNull() {
            addCriterion("fiStatus is not null");
            return (Criteria) this;
        }

        public Criteria andFiStatusEqualTo(Short value) {
            addCriterion("fiStatus =", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusNotEqualTo(Short value) {
            addCriterion("fiStatus <>", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusGreaterThan(Short value) {
            addCriterion("fiStatus >", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusGreaterThanOrEqualTo(Short value) {
            addCriterion("fiStatus >=", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusLessThan(Short value) {
            addCriterion("fiStatus <", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusLessThanOrEqualTo(Short value) {
            addCriterion("fiStatus <=", value, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusIn(List<Short> values) {
            addCriterion("fiStatus in", values, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusNotIn(List<Short> values) {
            addCriterion("fiStatus not in", values, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusBetween(Short value1, Short value2) {
            addCriterion("fiStatus between", value1, value2, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiStatusNotBetween(Short value1, Short value2) {
            addCriterion("fiStatus not between", value1, value2, "fiStatus");
            return (Criteria) this;
        }

        public Criteria andFiDataKindIsNull() {
            addCriterion("fiDataKind is null");
            return (Criteria) this;
        }

        public Criteria andFiDataKindIsNotNull() {
            addCriterion("fiDataKind is not null");
            return (Criteria) this;
        }

        public Criteria andFiDataKindEqualTo(Short value) {
            addCriterion("fiDataKind =", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindNotEqualTo(Short value) {
            addCriterion("fiDataKind <>", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindGreaterThan(Short value) {
            addCriterion("fiDataKind >", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindGreaterThanOrEqualTo(Short value) {
            addCriterion("fiDataKind >=", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindLessThan(Short value) {
            addCriterion("fiDataKind <", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindLessThanOrEqualTo(Short value) {
            addCriterion("fiDataKind <=", value, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindIn(List<Short> values) {
            addCriterion("fiDataKind in", values, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindNotIn(List<Short> values) {
            addCriterion("fiDataKind not in", values, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindBetween(Short value1, Short value2) {
            addCriterion("fiDataKind between", value1, value2, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFiDataKindNotBetween(Short value1, Short value2) {
            addCriterion("fiDataKind not between", value1, value2, "fiDataKind");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeIsNull() {
            addCriterion("fsCreateTime is null");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeIsNotNull() {
            addCriterion("fsCreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeEqualTo(Date value) {
            addCriterion("fsCreateTime =", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeNotEqualTo(Date value) {
            addCriterion("fsCreateTime <>", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeGreaterThan(Date value) {
            addCriterion("fsCreateTime >", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("fsCreateTime >=", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeLessThan(Date value) {
            addCriterion("fsCreateTime <", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("fsCreateTime <=", value, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeIn(List<Date> values) {
            addCriterion("fsCreateTime in", values, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeNotIn(List<Date> values) {
            addCriterion("fsCreateTime not in", values, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeBetween(Date value1, Date value2) {
            addCriterion("fsCreateTime between", value1, value2, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("fsCreateTime not between", value1, value2, "fsCreateTime");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdIsNull() {
            addCriterion("fsCreateUserId is null");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdIsNotNull() {
            addCriterion("fsCreateUserId is not null");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdEqualTo(String value) {
            addCriterion("fsCreateUserId =", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdNotEqualTo(String value) {
            addCriterion("fsCreateUserId <>", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdGreaterThan(String value) {
            addCriterion("fsCreateUserId >", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("fsCreateUserId >=", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdLessThan(String value) {
            addCriterion("fsCreateUserId <", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdLessThanOrEqualTo(String value) {
            addCriterion("fsCreateUserId <=", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdLike(String value) {
            addCriterion("fsCreateUserId like", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdNotLike(String value) {
            addCriterion("fsCreateUserId not like", value, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdIn(List<String> values) {
            addCriterion("fsCreateUserId in", values, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdNotIn(List<String> values) {
            addCriterion("fsCreateUserId not in", values, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdBetween(String value1, String value2) {
            addCriterion("fsCreateUserId between", value1, value2, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserIdNotBetween(String value1, String value2) {
            addCriterion("fsCreateUserId not between", value1, value2, "fsCreateUserId");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameIsNull() {
            addCriterion("fsCreateUserName is null");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameIsNotNull() {
            addCriterion("fsCreateUserName is not null");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameEqualTo(String value) {
            addCriterion("fsCreateUserName =", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameNotEqualTo(String value) {
            addCriterion("fsCreateUserName <>", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameGreaterThan(String value) {
            addCriterion("fsCreateUserName >", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("fsCreateUserName >=", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameLessThan(String value) {
            addCriterion("fsCreateUserName <", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameLessThanOrEqualTo(String value) {
            addCriterion("fsCreateUserName <=", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameLike(String value) {
            addCriterion("fsCreateUserName like", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameNotLike(String value) {
            addCriterion("fsCreateUserName not like", value, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameIn(List<String> values) {
            addCriterion("fsCreateUserName in", values, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameNotIn(List<String> values) {
            addCriterion("fsCreateUserName not in", values, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameBetween(String value1, String value2) {
            addCriterion("fsCreateUserName between", value1, value2, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsCreateUserNameNotBetween(String value1, String value2) {
            addCriterion("fsCreateUserName not between", value1, value2, "fsCreateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeIsNull() {
            addCriterion("fsUpdateTime is null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeIsNotNull() {
            addCriterion("fsUpdateTime is not null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeEqualTo(Date value) {
            addCriterion("fsUpdateTime =", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeNotEqualTo(Date value) {
            addCriterion("fsUpdateTime <>", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeGreaterThan(Date value) {
            addCriterion("fsUpdateTime >", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("fsUpdateTime >=", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeLessThan(Date value) {
            addCriterion("fsUpdateTime <", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("fsUpdateTime <=", value, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeIn(List<Date> values) {
            addCriterion("fsUpdateTime in", values, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeNotIn(List<Date> values) {
            addCriterion("fsUpdateTime not in", values, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("fsUpdateTime between", value1, value2, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("fsUpdateTime not between", value1, value2, "fsUpdateTime");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdIsNull() {
            addCriterion("fsUpdateUserId is null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdIsNotNull() {
            addCriterion("fsUpdateUserId is not null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdEqualTo(String value) {
            addCriterion("fsUpdateUserId =", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdNotEqualTo(String value) {
            addCriterion("fsUpdateUserId <>", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdGreaterThan(String value) {
            addCriterion("fsUpdateUserId >", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("fsUpdateUserId >=", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdLessThan(String value) {
            addCriterion("fsUpdateUserId <", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdLessThanOrEqualTo(String value) {
            addCriterion("fsUpdateUserId <=", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdLike(String value) {
            addCriterion("fsUpdateUserId like", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdNotLike(String value) {
            addCriterion("fsUpdateUserId not like", value, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdIn(List<String> values) {
            addCriterion("fsUpdateUserId in", values, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdNotIn(List<String> values) {
            addCriterion("fsUpdateUserId not in", values, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdBetween(String value1, String value2) {
            addCriterion("fsUpdateUserId between", value1, value2, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserIdNotBetween(String value1, String value2) {
            addCriterion("fsUpdateUserId not between", value1, value2, "fsUpdateUserId");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameIsNull() {
            addCriterion("fsUpdateUserName is null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameIsNotNull() {
            addCriterion("fsUpdateUserName is not null");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameEqualTo(String value) {
            addCriterion("fsUpdateUserName =", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameNotEqualTo(String value) {
            addCriterion("fsUpdateUserName <>", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameGreaterThan(String value) {
            addCriterion("fsUpdateUserName >", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("fsUpdateUserName >=", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameLessThan(String value) {
            addCriterion("fsUpdateUserName <", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameLessThanOrEqualTo(String value) {
            addCriterion("fsUpdateUserName <=", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameLike(String value) {
            addCriterion("fsUpdateUserName like", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameNotLike(String value) {
            addCriterion("fsUpdateUserName not like", value, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameIn(List<String> values) {
            addCriterion("fsUpdateUserName in", values, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameNotIn(List<String> values) {
            addCriterion("fsUpdateUserName not in", values, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameBetween(String value1, String value2) {
            addCriterion("fsUpdateUserName between", value1, value2, "fsUpdateUserName");
            return (Criteria) this;
        }

        public Criteria andFsUpdateUserNameNotBetween(String value1, String value2) {
            addCriterion("fsUpdateUserName not between", value1, value2, "fsUpdateUserName");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}